#ifndef _CITY_ACTOR_H_
#define _CITY_ACTOR_H_

#include "ui/ui_sprite.h"
#include "math/counter.h"

namespace city
{
class CityMap;
class CityNode;
class CityActor
{
public:
						CityActor(CityMap* pMap);
	virtual				~CityActor();
	virtual void		Create(const std::string& Sprite);
	virtual	void		Tick(float dt);
	virtual void		Render();
	virtual void		RenderDebug();
	virtual math::Vec2	GetPos();
	void				SetCurrent(CityNode* pNode);
	void				SetNext(CityNode* pNode);
	void				SetTarget(CityNode* pNode);
	unsigned int		GetType() { return m_Type; };
	void				SetProgress(float f) { m_Progress = f; };
	void				TurnEnded();

private:
	CityMap*			m_pMap;
	unsigned int		m_Type;
	CityNode*			m_pCurrent;
	CityNode*			m_pNext;
	ui::UISprite		m_Sprite;
	float				m_Progress;

	std::vector<unsigned int>		m_GraphPath;
	CityNode*			m_pTarget;
};

	
};


#endif // _CITY_ACTOR_H_